function [vr,xr]=vdesample(v,x,dxnew)
% VDESAMPLE: desample a velocity function by spatial averaging
%
% vr=vdesample(v,x,dxnew)
%
% Reduce the number of samples in a regularly sampled space series
% by spatial averaging
%
% v ... input velocity matrix. Space series are row vectors. Each row is
%           a different depth
% x ... space coordinate vector for v
% dxnew ... new spatial sample size
% vr ... resampled velocity matrix. Will have the same number of rows as
%           v but fewer columns.
%
% G.F. Margrave, CREWES/POTSI 2004
%
% NOTE: This SOFTWARE may be used by any individual or corporation for any purpose
% with the exception of re-selling or re-distributing the SOFTWARE.
% By using this software, you are agreeing to the terms detailed in this software's
% Matlab source file.

% BEGIN TERMS OF USE LICENSE
%
% This SOFTWARE is maintained by the CREWES Project at the Department
% of Geology and Geophysics of the University of Calgary, Calgary,
% Alberta, Canada.  The copyright and ownership is jointly held by
% its 'AUTHOR' (identified above) and the CREWES Project.  The CREWES
% project may be contacted via email at:  crewesinfo@crewes.org
%
% The term 'SOFTWARE' refers to the Matlab source code, translations to
% any other computer language, or object code
%
% Terms of use of this SOFTWARE
%
% 1) This SOFTWARE may be used by any individual or corporation for any purpose
%    with the exception of re-selling or re-distributing the SOFTWARE.
%
% 2) The AUTHOR and CREWES must be acknowledged in any resulting publications or
%    presentations
%
% 3) This SOFTWARE is provided "as is" with no warranty of any kind
%    either expressed or implied. CREWES makes no warranties or representation
%    as to its accuracy, completeness, or fitness for any purpose. CREWES
%    is under no obligation to provide support of any kind for this SOFTWARE.
%
% 4) CREWES periodically adds, changes, improves or updates this SOFTWARE without
%    notice. New versions will be made available at www.crewes.org .
%
% 5) Use this SOFTWARE at your own risk.
%
% END TERMS OF USE LICENSE

%


[nz,n]=size(v);
dx=x(2)-x(1);

%m=round((max(x)-min(x))/dxnew)+1;
m=round(n*dx/dxnew);%should be integer, round just in case
xr=(0:m-1)*dxnew+x(1);

vr=zeros(nz,m);

for k=1:m-1
    ind=between(xr(k),xr(k+1),x,1);
    vr(:,k)= mean(v(:,ind),2);
end
vr(:,m)=vr(:,m-1);